package com.bsj.travel.mapper.tdengine;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.bsj.travel.def.common.DTO.tdengine.TDCountDto;
import com.bsj.travel.def.common.DTO.tdengine.TDLogDto;
import com.bsj.travel.def.common.DTO.tdengine.TableDto;
import com.bsj.travel.def.common.DTO.web.monitor.SysLogDTO;
import com.bsj.travel.def.common.VO.device.DeviceTotalVO;
import com.bsj.travel.def.monitor.CloudLog;
import com.bsj.travel.def.monitor.tdengine.SuperTable;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author yinhao
 * @version 1.0
 * @description TD时序数据表结构
 * @date 2024/1/22
 */
@Repository
@DS("slave")
public interface TableTDengineMapper {

    /**
     * 创建超级表
     * @param superTable
     */
    void createSuperTable(SuperTable superTable);

    /**
     * 创建子表
     * @param tableDto
     */
    void createTable(TableDto tableDto);

    /**
     * 写入数据
     * @param tableDto
     */
    void insertData(TableDto tableDto);

    /**
     * 批量写入数据
     * @param list
     */
    void insertBatchData(List<TDLogDto> list);

    /**
     * 统计平台设备消息数
     * @param dto
     * @return
     */
    List<DeviceTotalVO> selectDataCount(TDCountDto dto);

    /**
     * 统计日志数量
     *
     * @param sysLog
     * @return int
     * @author ljx
     * @time 2024/3/22 17:05
     */
    int countLog(SysLogDTO sysLog);

    /**
     * 日志分页
     *
     * @param sysLog
     * @return java.util.List<com.bsj.travel.def.monitor.CloudLog>
     * @author ljx
     * @time 2024/3/22 17:15
     */
    List<CloudLog> pageLog(SysLogDTO sysLog);
}
